Описание протокола NEC
В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:
![]() |
Начало каждого бита определяется импульсом длиной 560 мкс (одновременно этот импульс сигнализирует о конце предыдущего бита). Длина следующей за импульсом паузы определяет логическое значение бита. Для определения конца последнего бита, после него также отправляется импульс длиной 560 мкс. |
Команды передаются пакетами. Каждый пакет начинается со стартовой последовательности - импульса длиной 9 мс и паузы длиной 4,5 мс. Пакет имеет размер 4 байта (32 бита), содержащие адрес устройства и команду. Каждый байт пакета передаётся младшим битом вперёд.
Существуют две версии протокола NEC: стандартная и расширенная. В стандартной версии адрес и команда имеют длину 8 бит. Пакет при этом состоит из адреса устройства, инвертированного адреса, команды, инвертированной команды, и имеет следующий вид:

В расширенной версии используется 16-ти битный адрес и 8-ми битная команда. Пакет при этом состоит из младшего байта адреса, старшего байта адреса, команды, инвертированной команды, и имеет следующий вид:

![]() |
При удержании кнопки посылка повторно не передаётся. Вместо этого каждые 110 мс передаётся специальный код повтора (рисунок слева). |
Хотелось бы добавить, что при передаче высокого уровня сигнала пульт посылает на частоте несущей (обычно 36 или 38 кГц) пачку импульсов (обычно со скважностью 4). Длительность пачки определяется временем, в течении которого должен передаваться высокий уровень. При передаче низкого уровня сигнала пульт ничего не передаёт.
Фотоприёмники же зачастую имеют выходы подтянутые к питанию и при отсутствии сигнала на входе (когда пульт ничего не передаёт) у них на выходе висит высокий уровень, а при наличии импульсов на частоте несущей (когда пульт передаёт высокий уровень) у них на выходе устанавливается низкий уровень.
Для корректного принятия информации от пульта эти обстоятельства обязательно необходимо учитывать.